#include "shell-app-cache-private.h"
+#include "shell-global-private.h"
+
/**
* SECTION:shell-app-cache
* @title: ShellAppCache
ShellAppCache *
shell_app_cache_get_default (void)
{
- static ShellAppCache *instance;
-
- if (instance == NULL)
- {
- instance = g_object_new (SHELL_TYPE_APP_CACHE, NULL);
- g_object_add_weak_pointer (G_OBJECT (instance), (gpointer *)&instance);
- }
-
- return instance;
+ return shell_global_get_app_cache (shell_global_get ());
}
static void
#include "shell-global-private.h"
#include "shell-perf-log.h"
#include "shell-window-tracker.h"
+#include "shell-app-usage.h"
+#include "shell-app-cache-private.h"
#include "shell-wm.h"
#include "shell-util.h"
#include "st.h"
GFile *userdatadir_path;
GFile *runtime_state_path;
+ ShellWindowTracker *window_tracker;
+ ShellAppSystem *app_system;
+ ShellAppCache *app_cache;
+ ShellAppUsage *app_usage;
+
StFocusManager *focus_manager;
guint work_count;
g_clear_object (&global->js_context);
g_object_unref (global->settings);
+ g_clear_object (&global->window_tracker);
+ g_clear_object (&global->app_system);
+ g_clear_object (&global->app_cache);
+ g_clear_object (&global->app_usage);
+
the_object = NULL;
g_cancellable_cancel (global->switcheroo_cancellable);
ShellGlobal *
shell_global_get (void)
{
+ g_return_val_if_fail (the_object, NULL);
return the_object;
}
{
g_signal_emit (global, shell_global_signals[SHUTDOWN], 0);
}
+
+/**
+ * shell_global_get_window_tracker:
+ *
+ * Gets window tracker.
+ *
+ * Return value: (transfer none): the window tracker
+ */
+ShellWindowTracker *
+shell_global_get_window_tracker (ShellGlobal *global)
+{
+ if (!global->window_tracker)
+ global->window_tracker = g_object_new (SHELL_TYPE_WINDOW_TRACKER, NULL);
+ return global->window_tracker;
+}
+
+/**
+ * shell_global_get_app_system:
+ *
+ * Gets app system.
+ *
+ * Return value: (transfer none): the app system
+ */
+ShellAppSystem *
+shell_global_get_app_system (ShellGlobal *global)
+{
+ if (!global->app_system)
+ global->app_system = g_object_new (SHELL_TYPE_APP_SYSTEM, NULL);
+ return global->app_system;
+}
+
+/**
+ * shell_global_get_app_cache:
+ *
+ * Gets app cache.
+ *
+ * Return value: (transfer none): the app cache
+ */
+ShellAppCache *
+shell_global_get_app_cache (ShellGlobal *global)
+{
+ if (!global->app_cache)
+ global->app_cache = g_object_new (SHELL_TYPE_APP_CACHE, NULL);
+ return global->app_cache;
+}
+
+/**
+ * shell_global_get_app_usage:
+ *
+ * Gets app usage.
+ *
+ * Return value: (transfer none): the app usage
+ */
+ShellAppUsage *
+shell_global_get_app_usage (ShellGlobal *global)
+{
+ if (!global->app_usage)
+ global->app_usage = g_object_new (SHELL_TYPE_APP_USAGE, NULL);
+ return global->app_usage;
+}
G_BEGIN_DECLS
+#include "shell-window-tracker.h"
+#include "shell-app-system.h"
+#include "shell-app-usage.h"
+
#define SHELL_TYPE_GLOBAL (shell_global_get_type ())
G_DECLARE_FINAL_TYPE (ShellGlobal, shell_global, SHELL, GLOBAL, GObject)
const char *property_type,
const char *property_name);
+ShellWindowTracker * shell_global_get_window_tracker (ShellGlobal *global);
+
+ShellAppSystem * shell_global_get_app_system (ShellGlobal *global);
+
+ShellAppUsage * shell_global_get_app_usage (ShellGlobal *global);
+
G_END_DECLS
#endif /* __SHELL_GLOBAL_H__ */